package com.shopping.huaju.common.valid;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * 完成 Integer 类型在某个集合/枚举中的校验注解
 * 参考别的校验注解
 * Constraint 注解 需要引入相应的包 validation-api
 */
@Documented
//该注解 主要可以对字段 和参数进行验证
@Target({ElementType.FIELD,ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
//validatedBy 表示该注解和哪个自定义校验器进行关联，可以和多个校验器进行关联来进行多规则的校验
@Constraint(
        validatedBy = {IntegerEnumConstraintValidator.class}
)
public @interface IntegerEnum {
    //{com.shopping.huaju.common.valid.IntegerEnum.message}是默认的校验错误提示信息需要在resources包下的ValidationMessages.properties进行配置
    String message() default "{com.shopping.huaju.common.valid.IntegerEnum.message}";
    //指定该规则属于哪些组的
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
    //String regex()default "";

    int[] values() default {};   //指定校验该Integer应该在哪个集合中;
}
